\chapter{Conclusion}

% The software architecture is designed as multi-layered thin client-server and
% loosely follows the Model-View-Controller (MVC) pattern. The thin-client
% paradigm allows for minimal processing requirements from the user since the
% application processing and data management are handled by the server. The MVC
% architectural pattern allows for the isolation of the business logic from the
% user interface--the end-user interacts solely with the `view'--Django's templating system.
% 
Unit testing and white box testing were performed to ensure that the behaviour
of the application's main features agrees with the functionality detailed in the
requirements specification. Unit testing was found to be particularly useful
when attempting to validate the correct behaviour of the plan validation
functionality. Software metrics were applied to the CEAB++ in order to draw
conclusions about the modules. The metrics were valuable in improving the
quality of the software--for example, in identifying and subsequently reducing
the high number of SQL queries on the plan view.

The CEAB++ improves on the current CEAB planner by providing increased
application reliability through superior software design, new features which
allow students to view their timetables, and an improved user interface which is
more familiar, consistent and usable. The resulting application is very light
weight and allowing many instances to be hosted from a single server, increasing
the availability of the system to students during peak planner times (i.e. the
beginning of a term). Due to time and logistical constraints
several features listed in the requirements specification were not included in
the delivered system, including authentication with Quest via the WATIAM system
and a means of retrieving statistics about the most/least popular courses being
offered within the planner.

The CEAB++ system also introduces new features such as the ability to persist past
plans. The system is designed to be extensible not only to administrators, who
can modify student data and add courses through the improved user interface, but
it is also designed to be extensible for new features.
